import {loginAPI} from '@/apis/user'
import {defineStore} from 'pinia'
import {ref} from 'vue'
import {useCartStroe} from "@/stores/CartStore";
import {mergeCartAPI} from "@/apis/cart";
// 管理用户数据相关
export const useUserStore = defineStore(
    'user',
    () => {
        // 定义管理用户数据的state
        const userInfo = ref({})

        const cartStore = useCartStroe()
        // 定义获取接口数据的action函数
        const getUserInfo = async ({account, password}) => {
            const res = await loginAPI({account, password})
            userInfo.value = res.result

            // 合并购物车
            await mergeCartAPI(cartStore.cartList.map(item => {
                return {
                    skuId: item.skuId,
                    selected: item.seleted,
                    count: item.count
                }
            }))

            await cartStore.updateNewList()
        }

        // 退出时清除用户信息
        const clearUserInfo = () => {

            cartStore.clearCart()
            userInfo.value = {}

        }
        // 以对象的格式把state和action return
        return {
            userInfo,
            getUserInfo,
            clearUserInfo
        }
    },
    {
        persist: true,
    }
)
